//
//  SoundExt.swift
//  imprint
//
//  Created by 小柠檬🍋 on 2025/11/4.
//


import Foundation
class SoundExt {
    /**
     * 估算文本转语音的时长（秒）
     * - Parameter text: 待合成的文本内容
     * - Parameter wordsPerMinute: 语速（每分钟字数，默认中文150-200字/分钟，英文180-220词/分钟）
     * - Returns: 估算时长（秒），保留一位小数
     */
    static func calculateDuration(
        text: String,
        wordsPerMinute: Int = 180 // 默认适中语速
    ) -> TimeInterval {
        guard !text.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty else {
            return 0.0
        }
        
        // 计算有效字符数（过滤空字符）
        let effectiveText = text.replacingOccurrences(of: "\\s+", with: "", options: .regularExpression)
        let charCount = effectiveText.count

        // 公式：时长(秒) = (字符数 / 每分钟字数) * 60秒
        let duration = (Double(charCount) / Double(wordsPerMinute)) * 60.0
        
        // 保留一位小数
        return (duration * 10).rounded() / 10.0
    }
}
